1. Field of the Invention
This invention relates generally to database management systems and, more particularly, to efficient evaluation of queries processed in relational database management systems.
2. Description of the Related Art
A data base management system (DBMS) often uses parallel query execution to deal with the performance demands imposed by applications executing complex queries against massive databases. Such parallelism is frequently achieved by partitioning a database among processors. The queries are broken into subtasks based upon the partitioning of the database, so that different subtasks are assigned to different data partitions. The subtasks are executed by the processor managing the partition and the results of these subtasks are merged for delivery to an end user. Optimization choices regarding how queries are broken into subtasks are driven by how the data is partitioned. That is, the partitioning property of the data determines how the queries are divided into subtasks. Often data has to be repartitioned dynamically to satisfy the partitioning requirements of a given query operation. Repartitioning is an expensive operation and should be optimized or avoided altogether.
From the discussion above, it should be apparent that there is a need for a database management system that evaluates complex query statements with reduced requirements for repartitioning of data and more efficient partitioning of the data. The present invention fulfills this need.